##########################################################数据集准备##########################################################
# 1.目标Yolo_v11/paper_data/Detect/	Annotations存放xml文件 images存放图像文件
# 2.修改Yolo_v11/paper_data/Detect/	voc_label.py 第7行		| classes = ['tuqi','kepeng','kepeng2']	# 改成自己的类别
# 												 第49行		| postfix = 'png'    					# 图像后缀
#												 第50行		| imgpath = r'.\images'    				# 图像文件路径
#												 第51行		| xmlpath = r'.\Annotations'			# xml文件文件路径
#												 第52行		| txtpath = r'.\labels'					# 生成的txt文件路径
# 3.运行Yolo_v11/paper_data/Detect/	voc_label.py 生成TXT标注文件
# 4.修改Yolo_v11/paper_data/Detect/	split_train_val.py 	第7行	| postfix = 'png'    					# 图像后缀
# 												 		第8行	| imgpath = r'.\images'    				# 图像文件路径
#												 		第9行	| txtpath = r'.\labels'					# txt文件路径
# 5.运行Yolo_v11/paper_data/Detect/	split_train_val.py

##########################################################参数调整##########################################################
# 6.修改Yolo_v11/	data_det.yaml	| 第4行参数	nc:3								# 改成自己的类别数
#									| 第7行参数	names: ['tuqi','kepeng','kepeng2']	# 改成自己的类别,填标签名字，这里顺序要跟标注时候的顺序一样，不然训练时候会乱
# 7.修改Yolo_v11/	train-det.py	文件内的参数

##########################################################训练代码##########################################################
# 8.一键训练	|  运行 Yolo_v11/train-det.py
# 9.一键预测	|  运行 Yolo_v11/detect.py

# task:表示任务为目标分割，可选detect，segment，classify
# mode:表示模式，可选train，val，predict，export
# model:该参数填入模型配置文件的路径，改进的话建议不需要填预训练模型权重
# device:表示是否使用GPU进行训练，可选0，1，2...或者cpu
# epoch:表示训练的轮次
# batch:表示每次迭代训练的图像数量，当报错时，需调小batch大小，默认是8
# imgsz:表示图像大小，会统一缩放成指定大小
# workers:指数据装载时cpu所使用的线程数，过高时会报错:[WinError 1455]页面文件太小，无法完成操作，此时就只能将default调成0了
# optimizer参数:该参数代表优化器类型
# close_mosaic:该参数代表在多少个epoch 后关闭 mosaic 数据增强
# resume:该参数代表是否从上次中断的训练状态继续训练。设置为False表示从头开始新的训练。如果设置为Tue，则会加载上一次训练的模型权重和优化器状态，继续训练。这在训练被中断或在已有模型的基础上进行进一步训练时非常有用
# project:该参数代表项目文件夹，用于保存训练结果
# name:该参数代表命名保存的结果文件夹
# single_cls:该参数代表是否将所有类别视为一个类别，设置为False表示保留原有类别
# cache:该参数代表是否缓存数据，设置为False表示不缓存